package cn.edu.lcu.cs.javaweb.web;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.edu.lcu.cs.javaweb.dao.UserDao;
import cn.edu.lcu.cs.javaweb.dao.UserDaoImpl;
import cn.edu.lcu.cs.javaweb.entity.User;

@WebServlet("/user/list") // 地址为什么是 /user/list 而不是 /userlist
public class UserListServlet extends HttpServlet {
	// 依赖于底层的代码
	private UserDao userDao = new UserDaoImpl();

	public UserListServlet() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 从数据库获取用户列表
		List<User> users = userDao.findAll();
		// 通过Request传递数据给页面
		// 为什么是request，而不是session与application？
		request.setAttribute("users", users);
		// 请求转发给前台页面
		// 注意是请求转发，不是重定向
		// 只有请求转发，页面才能从request中获取数据进行渲染
		// 页面为什么放到 WEB-INF 文件夹？
		request.getRequestDispatcher("/WEB-INF/pages/user/list.jsp").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
 
}
